/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package persistencia.dao.hibernate;

import java.util.List;
import org.hibernate.Session;
import org.hibernate.HibernateException;
import org.hibernate.Query;
import persistencia.pojo.Cliente;

/**
 *
 * @author Victor
 */
public class ClienteDAOImpl {
    public void saveCliente(Session session, Cliente cliente){
        try {
            session.save(cliente);
        } catch (HibernateException he) {
            he.printStackTrace();
        }

    }
    public void updateCliente(Session session, Cliente cliente){
        try {
            session.update(cliente);
        } catch (HibernateException he) {
            he.printStackTrace();
        }

    }
    public void deleteCliente(Session session, Cliente cliente){
        try {
            session.delete(cliente);
        } catch (HibernateException he) {
            he.printStackTrace();
        }

    }
    public Cliente getCliente(Session session,String codcliente){
        Cliente retorno=null;
        try {
            retorno= (Cliente) session.get(Cliente.class, codcliente);
        } catch (HibernateException he) {
            he.printStackTrace();
        }
        return retorno;
    }    
    public List<Cliente> getAllClientes(Session session){
        List<Cliente> retorno=null;
        try {
            Query q = session.createQuery("from Cliente");
            List<Cliente> resultList = q.list();
            retorno = resultList;
        } catch (HibernateException he) {
            he.printStackTrace();
        }
        return retorno;
    }
    public List<Cliente> getClientesWhere(Session session, String strColTabla, String strValueCol, String strPagActual){
        List<Cliente> retorno=null;
        try {
            Query q = session.createQuery("from Cliente where "+strColTabla+" like '"+strValueCol+"%'");
            List<Cliente> resultList = q.list();
            retorno = resultList;
        } catch (HibernateException he) {
            he.printStackTrace();
        }
        return retorno;
    }
}
